package com.oig.sys.msg.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Schema
@Data
public class TaskVo {

	@Schema(description = "任务id")
	private Integer id;

	@Schema(description = "任务标题")
	private String taskTitle;
	@Schema(description = "任务内容")
	private String taskContent;
	@Schema(description = "任务优先级")
	private String taskPriority;
	@Schema(description = "任务重要等级")
	private String taskLevel;
	@Schema(description = "关联单据类型")
	private String relationType;
	@Schema(description = "关联单号")
	private String relationId;
	@Schema(description = "处理人id")
	private Integer dealId;
	@Schema(description = "处理人名")
	private String dealName;

	@Schema(description = "预估工时")
	private BigDecimal taskHours;
	@Schema(description = "计划开始时间")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date planStartTime;
	@Schema(description = "计划完成时间")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date planEndTime;
	@Schema(description = "实际开始时间")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date startTime;
	@Schema(description = "实际完成时间")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date finishTime;
	@Schema(description = "实际工时")
	private BigDecimal usedHours;
	@Schema(description = "任务跟踪人id")
	private Integer watchId;
	@Schema(description = "任务跟踪人名")
	private String watchName;

	@Schema(description = "状态")
	private String status;

	@Schema(description = "消息发布人id")
	private Integer createUserId;
	@Schema(description = "消息发布人")
	private String createUserName;
	@Schema(description = "消息发布人时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createTime;

	@Schema(description = "消息修改人id")
	private Integer lastUpdateId;
	@Schema(description = "消息修改人")
	private String lastUpdateName;
	@Schema(description = "消息修改人时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date lastUpdateTime;

	@Schema(description = "版本号")
	private Integer version;

	@Schema(description = "所属租户id")
	private Integer tenantId;
	@Schema(description = "所属租户名称")
	private String tenantName;

	@Schema(description = "任务日志")
	private List<TaskLogVo> taskLogVoList;
}
